package com.librelato.persistencia.config;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

public class SQLConfiguracao {

	private final Properties propriedades = new Properties();

	private static final String ARQUIVO = "sql.properties";

	private SQLConfiguracao() {
		try {
			File f = new File(ARQUIVO);

			if (f.isFile()) {
				this.propriedades.load(new FileInputStream(f));
			} else {
				this.propriedades.load(PropriedadesDeConfiguracao.class
						.getClassLoader().getResourceAsStream(ARQUIVO));
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public String getValor(final String chave) {
		final String valor = this.propriedades.getProperty(chave);
		if (valor == null || "".equals(valor)) {
			throw new RuntimeException();
		}
		return valor;
	}

	private static class SQLConfiguracaoHolder {
		private static SQLConfiguracao _INSTANCE = new SQLConfiguracao();
	}

	public static SQLConfiguracao getInstance() {
		return SQLConfiguracaoHolder._INSTANCE;
	}

}
